package net.adetech.dcweb.core.dc.service;

import net.adetech.dcweb.core.common.entity.CommonAdminuser;
import net.adetech.dcweb.core.dc.entity.DcAuditComment;
import net.adetech.dcweb.core.dc.entity.DcInfo;

import java.util.List;

/**
 * Created by sunfeihu on 2016/10/20.
 */
public interface IDcInfoService {

    /**
     * 增加单条数据
     *
     * @param entity 要增加的实体
     */
    DcInfo save(DcInfo entity);

    /**
     * 删除单条数据
     *
     * @param id 数据主键ID
     */
    int delete(Long id);

    /**
     * 修改单条数据
     *
     * @param entity 要修改的实体
     */
    int update(DcInfo entity);

    /**
     * 查询单条数据
     *
     * @param id 数据主键ID
     */
    DcInfo find(Long id);


    /**
     * 增加多条数据
     *
     * @param list 多条数据实体集合
     */
    void save(List<DcInfo> list);

    /**
     * 删除多条数据
     *
     * @param ids 多条数据主键ID集合
     */
    void delete(List
                        <Long> ids);


    /**
     * 修改多条数据
     *
     * @param list 多条数据实体集合
     */
    void update(List<DcInfo> list);

    /**
     * 布控信息
     * @return
     */
    List<DcInfo> list(Integer state, CommonAdminuser adminuser);

    /**
     * 取消布控消息
     * @param id 主键ID
     */
    void close(Long id,DcAuditComment dcAuditComment);

    /**
     * 审核拒绝
     * @param id
     */
    void unpass(Long id, DcAuditComment dcAuditComment);

    /**
     * 审核通过
     * @param id
     */
    void pass(Long id, DcAuditComment dcAuditComment);

    /**
     * 提交布控
     * @param id
     */
    void commit(Long id);

    /**
     * 提交审核
     * @param id
     */
    void audit(Long id, DcAuditComment dcAuditComment);


    /**
     * 根据布控状态获取布控列表
     * @param state 布控状态 0未提交 1待审核 2已审核
     * @return 布控列表
     */
    List<DcInfo> getDcInfoListByState(String state);

}